<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// function fn(){
	//
	// }
	//
	// console.log(fn.__proto__ === Function.prototype);
	// console.log(Function.prototype.__proto__ === Object.prototype);
	// console.log(Object.prototype.__proto__);// null
	// console.log(fn.__proto__.__proto__.__proto__);// null
	
	
	// function fn(){
	// 	console.log("fn",this);
	// }
	// fn.call();// window
	// fn.call(undefined);// window
	// fn.call(null);// window
	// fn.call(this);// window
	// console.log(this === window);// true
	// fn.call(1);// 数字包装对象
	// fn.call("1");// 字符串包装对象
	// fn.call(function(){});// 函数
	// fn.call({a:1,b:2});// 对象
	// fn.call([1,2,3,4]);// 数组
	//
	//
	//
	// function run(){
	// 	console.log(this===obj);
	// }
	// const obj = {
	// 	fn(){
	// 		console.log("fn",this===obj);
	// 		run.call(this);
	// 	}
	// }
	// obj.fn();
	
	
	// const fn = function(a,b,c,d){
	// 	console.log(a,b,c,d,this);// 2 3 4 undefined
	// }
	// fn.call(1,2,3,4);
	
	
	// const fn = function(a,b,c,d){
	// 	console.log(a,b,c,d,this);// 2 3 4 undefined
	// }
	// fn.apply(1,[2,3,4]);
	
	const fn= function (a,b,c,d,e){
		console.log(this,a,b,c,d,e);
	}
	// fn.bind([1,2,3,4],1,2,3)(10,20)
	const my = fn.bind({a:1,b:2},1,2,3);
	my(10,20);
</script>
</html>